iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 25
1

切換路由方法

之前有提到切換路由的方法是使用 router-link 來切換,今天我們來介紹另一種不同的方式,這裡附上官方文件 API 參考,搭配官方文件的介紹可以更快速了解唷,那麼就直接來看下面的範例吧!

//src/components/Menu.vue

<template>
  <div>
    <router-link to="/page">Child1</router-link>
    <router-link to="/page/child2">Child2</router-link>
    <router-link to="/page/child3">Child3</router-link>
    <a href="#" @click.prevent="updatePath">切換到 Child2</a> //利用方法來切換路由
  </div>
</template>

<script>
export default {
  name: 'Menu',
  data () {
    return {
      
    }
  },
  methods: {
    updatePath() {
      this.$router.push('/page/child2')
    }
  }
}
</script>

上面的路由切換方式是使用 a 連結並建立方法來切換,注意,這裡的方法一定要加上 this 才有辦法正確使用router 的方法唷!
另外還可以利用 router 的 back() 的方法,來達到回到上一頁的效果,該怎麼做就來看看下面吧!

//src/components/Menu.vue

<template>
  <div>
    <router-link to="/page">Child1</router-link>
    <router-link to="/page/child2">Child2</router-link>
    <router-link to="/page/child3">Child3</router-link>
    <a href="#" @click.prevent="updatePath">切換到 Child2</a>
    <a href="#" @click.prevent="beforePath">回到前一頁</a>
  </div>
</template>

<script>
export default {
  name: 'Menu',
  data () {
    return {
      
    }
  },
  methods: {
    updatePath() {
      this.$router.push('/page/child2')
    },
    beforePath() {
      this.$router.back()
    }
  }
}
</script>

而回到前一頁還有另一種寫法:

beforePath() {
  this.$router.go(-1)
}

這樣子也可以唷!

methods: {
  updatePath() {
    this.$router.replace('/page/child2')
  },
  beforePath() {
    this.$router.go(-1)
  }
}

當我們使用 replace( ) 的方法的時候,是可以和 push( ) 一樣切換到指定頁面的,但是不同的地方是,用 push( ) 的話會在 history 裡添加一個紀錄,而replace( ) 則不會,所以如果我們點擊回到前一頁, 如果是用replace( ) 切換頁面的話,會回到上上一頁的路由唷!

那麼,明天再見囉!


上一篇
Day 24 : 同一路徑載入多個頁面元件
下一篇
Day 26 : Vue - Axios
系列文
Vue 學習筆記 - 讓你30天掌握 Vue31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言